// 依赖收集
// 发布者
class Dep {
  constructor(data) {
    this.subs = [] // 保存观察者
  }
  addSub(fn) {
    this.subs.push(fn)
  }
  // 数据劫持，拦截对象属性
  notify() {
    this.subs.forEach(sub => {
      sub.update()
    })
  }
}